----获取单例table
local cache = {}

---获取单例table
---@param file string @文件路径
---@param tag string @标签
---@param fun any @构建方法
---@return any @单例any
return function (file, tag, fun)
    local fmap = cache[file] or {}
    cache[file] = fmap
    local tmap = fmap[tag] or ((fun and fun()) or {})
    fmap[tag] = tmap
    return tmap
end
